home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / game / role / ScottItal.lha / ScottItal / Src / SCOTT.H < prev   
C/C++ Source or Header  |  1997-01-28  |  3KB  |  128 lines

  1. /*
  2.  *  SCOTT FREE
  3.  *
  4.  *  A free Scott Adams style adventure interpreter
  5.  *
  6.  *  Copyright:
  7.  *      This software is placed under the GNU license.
  8.  *
  9.  *  Statement:
  10.  *      Everything in this program has been deduced or obtained solely
  11.  *  from published material. No game interpreter code has been
  12.  *  disassembled, only published BASIC sources (PC-SIG, and Byte Dec
  13.  *  1980) have been used.
  14.  *
  15.  *  ===================================================================
  16.  *
  17.  *  Version History AMIGA:
  18.  *  Ver ,     Date,         Author, Comment
  19.  *  -------------------------------------------------------------------
  20.  *  1.0 , 28/07/96, Andreas Aumayr, First public release
  21.  *  ___________________________________________________________________
  22.  */
  23.  
  24.   
  25. #define LIGHT_SOURCE    9       /* Always 9 how odd */
  26. #define CARRIED         255     /* Carried */
  27. #define DESTROYED       0       /* Destroyed */
  28. #define DARKBIT         15
  29. #define LIGHTOUTBIT     16      /* Light gone out */
  30.  
  31. #define MAX_PPR 16
  32. #define MAX_LOG 4
  33.  
  34. typedef struct
  35. {
  36.     short Unknown;
  37.     short NumItems;
  38.     short NumActions;
  39.     short NumWords;     /* Smaller of verb/noun is padded to same size */
  40.     short NumRooms;
  41.     short MaxCarry;
  42.     short PlayerRoom;
  43.     short Treasures;
  44.     short WordLength;
  45.     short LightTime;
  46.     short NumMessages;
  47.     short TreasureRoom;
  48. } Header;
  49.  
  50. typedef struct
  51. {
  52.     unsigned short Vocab;
  53.     unsigned short Condition[5];
  54.     unsigned short Action[2];
  55. } Action;
  56.  
  57. typedef struct
  58. {
  59.     char *Text;
  60.     short Exits[6];
  61. } Room;
  62.  
  63. typedef struct
  64. {
  65.     char *Text;
  66.     /* PORTABILITY WARNING: THESE TWO MUST BE 8 BIT VALUES. */
  67.     unsigned char Location;
  68.     unsigned char InitialLoc;
  69.     char *AutoGet;
  70. } Item;
  71.  
  72. typedef struct
  73. {
  74.     short Version;
  75.     short AdventureNumber;
  76.     short Unknown;
  77. } Tail;
  78.  
  79.  
  80. /* These are used for GFX logic */
  81. typedef struct {
  82.     unsigned char what[MAX_PPR];
  83.     //unsigned char or[MAX_PPR];
  84.     //unsigned char and[MAX_PPR];
  85.     unsigned char loc[MAX_PPR][MAX_LOG];
  86.     unsigned char ppr;
  87.     unsigned char obj[MAX_PPR][MAX_LOG];
  88.     unsigned char pnr[MAX_PPR]; // pic number in sequence
  89.     //unsigned char off[MAX_PPR];
  90. } room_pics;
  91.  
  92. #define YOUARE      1   /* You are not I am */
  93. #define SCOTTLIGHT  2   /* Authentic Scott Adams light messages */
  94. #define DEBUGGING   4   /* Info from database load */
  95. #define TRS80_STYLE 8   /* Display in style used on TRS-80 */
  96. #define PREHISTORIC_LAMP 16 /* Destroy the lamp (very old databases) */
  97.  
  98. #define TRUE  1
  99. #define FALSE 0
  100.  
  101.  
  102. Header GameHeader;
  103. Tail GameTail;
  104. Item *Items;
  105. Room *Rooms;
  106. char **Verbs;
  107. char **Nouns;
  108. char **Messages;
  109. Action *Actions;
  110. int LightRefill;
  111. char NounText[16];
  112. int Counters[16];   /* Range unknown */
  113. int CurrentCounter;
  114. int SavedRoom;
  115. int RoomSaved[16];  /* Range unknown */
  116. int DisplayUp;      /* Curses up */
  117. void *Top,*Bottom;
  118. int Redraw;     /* Update item window */
  119. int Options;        /* Option flags set */
  120. int Width = 0;      /* Terminal width */
  121. int TopHeight;      /* Height of top window */
  122. int BottomHeight;   /* Height of bottom window */
  123. long BitFlags=0;    /* Might be >32 flags - I haven't seen >32 yet */
  124.  
  125. #define MyLoc   (GameHeader.PlayerRoom)
  126. #define TRS80_LINE "\n\n<------------------------------------------------------------->"
  127.  
  128.